Compressed domain image summation apparatus, systems, and methods

ABSTRACT

Apparatus, systems, and methods disclosed herein may transpose image blocks from successively-captured versions of an image according to relative movement between an image capture device and the scene being captured. The transposition may provide for alignment of the successively-captured images notwithstanding the movement. The transposed image blocks from the successive images are composited in the frequency domain by integrating frequency domain coefficients from each into a composite final image. Additional embodiments are disclosed.

TECHNICAL FIELD

Various embodiments described herein relate to apparatus, systems, andmethods associated with imaging, including image summation techniquesfor increased integration efficiency.

BACKGROUND INFORMATION

As megapixel counts grow and pixel dimensions shrink in the field ofdigital imaging, longer image integration times may be required for agiven brightness of scene lighting. However, if an exposure is too long,camera motion may result in a blurred image.

A camera or other image capture device may meter available light and mayincrease its lens aperture diameter to permit more of the availablelight to impinge on the image sensor. However, in low light conditionsthe camera may reach the wide extreme of the available apertureadjustment range. In this case, setting an exposure time sufficient tocapture enough light may result in a blurred image. Conversely, settingan exposure time sufficiently short to avoid blur may result in a darkimage. Increasing image sensor amplification to lighten the image mayintroduce an unacceptable level of pixel noise.

Thus, a need exists to decrease blur during long exposures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an apparatus and a system according tovarious embodiments of the invention.

FIGS. 2A and 2B are object-state diagrams according to variousembodiments of the invention.

FIG. 3 is a vector diagram according to various embodiments of theinvention.

FIG. 4 is a pixel block diagram according to various embodiments of theinvention.

FIG. 5 is a motion matching diagram according to various embodiments ofthe invention.

FIGS. 6A-6D are flow diagrams according to various embodiments of theinvention.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of an apparatus 100 and a system 180 accordingto various embodiments of the current invention. The apparatus 100 maybe associated with an image capture device. For conciseness and clarity,some embodiments may be described herein in the context of a digitalcamera. However, it is noted that various embodiments may be realized inother image capture device-based apparatus, systems, and applications,including cellular telephones, hand-held computers, laptop computers,desktop computers, automobiles, household appliances, medical equipment,point-of-sale equipment, and image recognition equipment, among others.

The apparatus 100 increases the effective light sensitivity of theassociated image capture device without an appreciable increase in pixelnoise levels by performing a compositing operation in the frequencydomain (FD) on a sequence of image frames captured in succession. Eachsuccessive image is transposed in the spatial domain according torelative movement between the image capture device and the scene beingcaptured to provide for image alignment notwithstanding the movement.For the embodiments described herein, “transposition” or “transpositionoperation” means to change, modify, or adjust Cartesian coordinates ofone or more pixels relative to a photographic frame such that the pixelsare moved to a different position in the frame.

It is noted that an image may be stored in a compressed format in animage buffer. Various compressed formats may be used, including a jointphotographic experts group (JPEG) format. Some compressed image formatscontemplated herein, including the JPEG format, achieve compression byperforming an entropy encoding operation on a version of the image thathas been transformed to the frequency domain. Some embodiments hereinperform an entropy decoding operation on the compressed image to yield aversion of the image in the frequency domain (e.g., to yield a discretecosine transform (DCT) version of the image).

Example images and image components are referred to hereinafteraccording to a temporal order of receiving the image from an imagesensor array (ISA) or storing the image in a compressed image buffer101. Thus, for example, a “new,” “newly-received,” or “subsequentlyreceived” version of an image is received after an “earlier-stored” or“previously received” version of the image.

Example images and image components may also be referred to according towhether the image comprises pixel image blocks from a single ISAread-out operation or from more than one ISA read-out operation. Thus,an “earlier-stored composite” version of the image may comprise anearlier-stored version of the image, including pixel image blocks fromone or more ISA read-out operations composited together. A “newcomposite image” may comprise an earlier-stored composite imagecomposited together with a newly-received version of the image. The term“version of the image” in this context relates to the sequence of imageframes of the scene captured in succession, and recognizes that relativecamera-to-scene movement may, and generally will, result in a differentpixel image array in each frame.

FIGS. 2A and 2B are object-state diagrams according to variousembodiments of the current invention. The FIGS. 2A and 2B depict imagecomponents resulting from operations performed by the apparatus 100 onimage data received from an ISA 104.

Referring now to FIGS. 1, 2A, and 2B, some embodiments of the apparatus100 may include a strip buffer 106. The strip buffer 106 temporarilystores portions of image data streams associated with the sequence ofimages of the scene. A portion of an image data stream 202 may be storedas it is received from the ISA 104 as a stored image data stream 204.One or more image blocks may be selected from the strip buffer 106 andoperated on by various components of the apparatus 100. Some embodimentsmay operate on eight pixel by eight pixel image blocks; however otherblock sizes are possible.

The apparatus 100 may be roughly divided into three functional sections,each described in detail further below. A section 108 of the apparatus100 selects image blocks associated with a first-received image from thestrip buffer 106 in order to populate the compressed image buffer 101with the first-received image. A section 110 selects image blocksassociated with a successive image from the strip buffer 106, convertsthe blocks to the frequency domain, and adds the converted blocks to thecompressed image buffer 101. A section 112 selects a “search window” ofimage blocks from the strip buffer 106 to use in motion-matchingoperations.

The apparatus 100 may thus include a first domain translator 114 coupledto the strip buffer 106. The first domain translator 114 operates toconvert an earlier-received image block 206 associated with afirst-received image from the spatial domain (SD) to the frequencydomain to yield an earlier-received FD image block 210. A first entropyencoder 116 may be coupled to the first domain translator 114. The firstentropy encoder 116 operates to entropy-encode the earlier-received FDimage block 210 to yield an entropy-encoded earlier-received FD imageblock 214.

The entropy-encoded earlier-received FD image block 214 is stored in thecompressed image buffer 101 as an entropy-encoded earlier-storedcomposite FD image block 218. The denomination “composite FD imageblock” in this instance signifies that blocks associated with theversion of the image stored in the compressed image buffer are generallycomposited from the first data stream associated with the first of thesequence of images and from subsequently-received data streamsassociated with images received subsequent to the first image. The firstdomain translator 114 and the first entropy encoder 116 thus operate topopulate the compressed image buffer 101 with the first image of thesequence. A pre-sequence image may be received and domain-converted butnot stored, as described further below.

The apparatus 100 may also include a second domain translator 122coupled to the strip buffer 106. The second domain translator 122operates on a new image block 220 of pixel illuminance values selectedfrom the stored image data stream 204 to convert the block 220 from thespatial domain to the frequency domain via an SD to FD transformoperation. The transform operation yields a new FD image block 224.

The apparatus 100 may further include combinational logic 124operationally coupled to the second domain translator 122. Thecombinational logic 124 combines the new FD image block 224 with acorresponding earlier-stored composite FD image block 228 to yield a newcomposite FD image block 236, as described in detail further below. Theearlier-stored composite FD image block 228 may be associated with oneor more previously received versions of the image.

If the new FD image block 224 corresponds to the second image of thesequence of images, the earlier-stored composite FD image block 228 isassociated with only the first-received image of the sequence of images.On the other hand, if the new FD image block 224 corresponds to thethird or a subsequent image of the sequence of images, theearlier-stored composite FD image block 228 may comprise portions of twoor more earlier-stored images.

Some embodiments may include an image comparator 126 coupled to thesecond domain translator 122. The image comparator 126 operates tocompare a selected set of low-frequency coefficients of the new FD imageblock 224 to a corresponding set of low-frequency coefficients of thecorresponding earlier-stored composite FD image block 228. Low-frequencycoefficients of an image block in the frequency domain may correspond toimage features. Conversely, high-frequency coefficients may correspondto noise. The image comparator 126 may thus compare significant featuresof the new FD image block 224 to significant features of thecorresponding earlier-stored composite FD image block 228. The compareoperation may be performed as a verification that the two FD imageblocks 224 and 228 indeed match within a match threshold.

If the compare operation does not yield a match within the matchthreshold, some embodiments may discard the new FD image block 224. Inthat case, a noise filter 127 may be coupled to the image comparator126. The noise filter 127 operates by attenuating high-frequencycoefficients of the earlier-stored composite FD image block 228. Othernoise filter implementations are possible. The filtering operationyields a new composite FD image block 236 comprising a smoothed versionof the earlier-stored composite FD image block 228.

The apparatus 100 may also include averaging logic 128 coupled to thecombinational logic 124. The averaging logic 128 determines how the newFD image block 224 is combined with the corresponding earlier-storedcomposite FD image block 228.

The averaging logic 128 computes a weighted average of FD coefficientsof the new FD image block 224 and corresponding FD coefficients of theearlier-stored composite FD image block 228. For example, in someembodiments a weight associated with the FD coefficients of the new FDimage block 224 may be set to a value of one. A weight associated withthe corresponding FD coefficients of the earlier-stored composite FDimage block 228 may comprise a number equal to a number of image framescomposited into the earlier-stored composite FD image block 228. Otherembodiments may use other mathematical schemes to combine FDcoefficients from the new FD image block 224 with corresponding FDcoefficients from the earlier-stored composite FD image block 228.

A second entropy encoder 130 may be coupled to the combinational logic124. The second entropy encoder 130 may entropy-encode the new compositeFD image block 236 to yield an entropy-encoded new composite FD imageblock 240. The entropy-encoded new composite FD image block 240 may thenbe stored in the compressed image buffer 101.

It was previously mentioned that in some embodiments the imagecomparator 126 verifies that the new FD image block 224, transformed tothe frequency domain from the strip buffer 106, matches thecorresponding earlier-stored composite FD image block 228 within a matchthreshold. Some embodiments herein may perform affine transformoperations on the earlier-stored composite FD image block 228. Aresulting set of coordinates is used to index a spatial domain versionof the new FD image block 224 from the strip buffer 106. The spatialdomain version of the new FD image block 224 is transformed to thefrequency domain by the second domain translator 122 for combinationwith the earlier-stored composite FD image block 228, as previouslydescribed.

The apparatus 100 may thus include a first entropy decoder 134 coupledto the image comparator 126. The first entropy decoder 134 performs anentropy decoding operation on the entropy-encoded earlier-storedcomposite FD image block 218 to yield the earlier-stored composite FDimage block 228.

FIG. 3 is a vector diagram according to various embodiments of thecurrent invention. Referring now to FIGS. 1-3, an intra-block coordinateinterpolator 138 may be coupled to the first entropy decoder 134. Theintra-block coordinate interpolator 138 reads a set of block positionalcoordinates associated with the earlier-stored composite FD image block228. From the set of block positional coordinates, the intra-blockcoordinate interpolator 138 determines a set of coordinates 250 (e.g.,the coordinates (X4,Y3) of FIG. 3) associated with a pixel (e.g., thepixel 306) within the earlier-stored composite FD image block 228. Eachcoordinate of the set of coordinates 250 may be calculated as an offsetfrom a corresponding block positional coordinate.

Transpositional logic 142 may be operatively coupled to the firstentropy decoder 134. The transpositional logic 142 performs a spatialtransposition operation on the pair of coordinates 250 associated withthe pixel 306 within the earlier-stored composite FD image block 228.The spatial transposition may comprise an affine matrix multiplicationoperation, and may yield a transposed set of coordinates 254 (e.g., thecoordinates (X4.6,Y5.6)).

The transposed set of coordinates 254 may be associated with a pixel 308from the new version of the image. The transposed set of coordinates 254are used to locate the pixel 308 within the new image data stream 204 inthe strip buffer 106. Having located the pixel 308 and having spatiallyassociated the pixels 306 and 308, the apparatus 100 uses thecombinational logic 124 to combine FD coefficients from FD image blocksassociated with the pixels 306 and 308. The combinational logic 124 maycombine the FD coefficients from each of the blocks to generate acorresponding new composite FD image block 236, as previously described.It is noted that some embodiments may assemble entire blocks oftransposed pixels and combine the corresponding FD image data blocks toform the new composite FD image. Some embodiments may operate on otherincrements of FD image data.

An affine matrix calculator 146 may be coupled to the transpositionallogic 142 to provide an affine matrix 258 for the above-describedtransposition operation. The affine matrix calculator 146 may generatethe affine matrix 258 such that a set of coordinates (e.g., thecoordinates (X3,Y3), (X4,Y7), and (X5,Y6)) of a set of starting pointsassociated with one or more vectors 310, 320, and 330 multiplied by theaffine matrix 258 results in a set of coordinates (e.g., the coordinates(X1,Y7), (X3,Y12), and (X7,Y9) respectively), of a set of ending pointsassociated with the vectors 310, 320, and 330.

FIG. 4 is a pixel block diagram according to various embodiments of thecurrent invention. FIG. 4 depicts a spatial domain version 405 of anearlier-stored composite FD image pixel block (e.g., the block 228).Referring now to FIGS. 1-4, the vectors 310, 320, and 330 representpaths between pixels from the image block 405 associated with thepreviously received versions of the image and corresponding pixels froma spatial domain version 409 of a new FD image block (e.g., the block224). The pixel positions are measured relative to a frame that iscommon to the previously received versions of the image and to the newversion of the image. Similar vectors from previously-received blocksare used as inputs to the affine matrix generation operation and may beselected from a vector table 148. Population of the vector table 148results from motion matching operations discussed in detail furtherbelow.

Relative camera-to-scene motion, including camera motion and/or motionof elements within the scene, may coordinate-shift pixels from thenewly-received image block 409 such that the block 409 is positionallyshifted, skewed, rotated, vertically stretched, and/or horizontallystretched with respect to the earlier-stored composite image pixel block405. Some embodiments herein operate to locate pixel luminance valuesassociated with the newly-received image block 409 within thecoordinate-shifted data stream. FD coefficients associated with thepixel illuminance values may then be combined with the earlier-storedcomposite image pixel block 405 in the frequency domain. Themathematical combination is stored as the new composite FD image block236.

A pixel indexer 150 may be coupled to the transpositional logic 142. Thepixel indexer 150 uses the set of transposed pixel coordinates 254 thatare output from the transpositional logic 142 to index pixel luminancevalues associated with the newly-received image block 409 from the stripbuffer 106. The second domain translator 122 converts the newly-receivedimage block 409 to the frequency domain in the case of embodiments thatperform the mathematical combination operation in the frequency domain.

FIG. 5 is a motion matching diagram according to various embodiments ofthe current invention. Referring now to FIGS. 1, 2A, 2B, and 5, theapparatus 100 may perform motion matching operations on a spatial domainversion of the earlier-stored composite FD image block 228 and amatching image block 268 of a newly-received image data stream stored inthe strip buffer 106. The motion matching operations are used tocalculate a vector 270 with which to populate the vector table 148.

Some embodiments may find, entropy-decode, and load a high featurestrength earlier-stored composite FD image block 272 from the compressedimage buffer 101. The high feature strength earlier-stored composite FDimage block 272 may comprise an earlier-stored composite FD image blockwith a highest feature strength of all image feature blocks associatedwith a selected region of the earlier-stored composite FD image.Examples hereinunder expressed in terms of a “high” or “highest” featurestrength image block may also apply to embodiments that do not usefeature strength to select a block from the stored image buffer formatching. Likewise, examples expressed hereinunder without the use ofthe terms “high” or “highest” may also apply to embodiments that doselect blocks for motion matching based upon feature strength.

“High feature strength” as used herein means a measure of one or morecharacteristics associated with an image feature 512 that render theimage feature 512 distinguishable from other image features and from theset of background pixels. Thus for example, a low image feature strengthmay be associated with a line segment standing alone in a sample pixelblock. Such line segment may be ambiguous and difficult to distinguishfrom other line segments associated with the same line. On the otherhand, a high image feature strength may be associated with a junction ofcrossing lines in a sample pixel block. In the latter case, linecrossing angles may serve to distinguish a particular junction ofcrossing lines from other such junctions. Measures of image featurestrength may include mathematical operations performed on selected setsof low-frequency FD coefficients, as described further below. Thesemeasures may be used to distinguish pixel image blocks and to findblocks that are similar.

The apparatus 100 may search for the matching image block 268 using asearch window buffer 154 coupled to the strip buffer 106. The searchwindow buffer 154 stores a set of pixels from the strip buffer 106referred to herein as the search window 274. The search window 274 maycomprise a 64×64 pixel block in some embodiments, and may correspond toan area 520 of an SD version of the compressed FD image stored in thecompressed image buffer 101. That is, the search window 274 comprises anarea of a newly-received image 530 within which the matching image block268 may be expected to be found, considering expected relativescene-to-camera motion. In some embodiments, for example, the searchwindow 274 may be centered at a coordinate position corresponding to thecenter of an SD version 276 of the high feature strength earlier-storedcomposite FD image block 272.

The apparatus 100 may include a second entropy decoder 160 coupled tothe compressed image buffer 101. The second entropy decoder 160 loadsthe entropy-encoded earlier-stored composite FD image block 218 from thecompressed image buffer 101. The second entropy decoder 160 performs afull or partial entropy decoding operation on the entropy-encodedearlier-stored composite FD image block 218 to reveal a set oflow-frequency coefficients 278. Some embodiments may limit decoding to ahigh-order portion of the entropy-encoded image block 218, wherein theset of low-frequency coefficients 278 may be located. “High-orderportion” refers to a selected number of bits located at bit positionsassociated with low-frequency coefficients in the block data stream. Apartial decode may be sufficient to reveal image feature strength asdescribed here below.

The apparatus 100 may include image feature strength logic 164 coupledto the second entropy decoder 160. The image feature strength logic 164operates to scan a selected area of the compressed image buffer 101 fora highest strength earlier-stored composite FD image block (e.g., thehigh feature strength earlier-stored composite FD image block 272). Thatis, the image feature strength logic 164 chooses a block with an imagefeature strength higher than any other image block from the selectedarea, based upon an image feature strength metric. The image featurestrength metric may comprise a mathematical operation performed on theset of low-frequency coefficients 278 from an earlier-stored compositeFD image block, or other operation calculated to measure image featurestrength. For example, the mathematical operation may comprise a sum ofthe absolute values of the set of low-frequency coefficients 278 in someembodiments.

The apparatus 100 may also include a region buffer 168 coupled to theimage feature strength logic 164. The region buffer 168 stores the highfeature strength earlier-stored composite FD image block 272. Someembodiments may receive a pre-sequence image frame at the strip buffer106 prior to receiving the first-received image frame. If utilized, thepre-sequence image frame may be converted to the frequency domainblock-by-block by the first domain translator 114 as described above.Each block may be analyzed for image feature strength; andhighest-strength blocks may be stored in the region buffer 168. Thepre-sequence image frame may thus serve to pre-populate the regionbuffer 168 with high-strength blocks. Thus populated, the region buffer168 is ready to be used in motion-matching operations associated withthe first-received image frame. The resulting motion vectors may be usedas predictors for motion-matching operations performed on subsequentframes.

The pre-sequence image frame may also be analyzed to determine aquantization table adequate to size the received image to the compressedimage buffer 101. The pre-sequence image frame may be quantized andentropy-encoded using alternative quantization tables to find acompatible compression ratio. Subsequent images in the sequence ofimages may then be expeditiously encoded using the quantization tabledetermined from the pre-sequence image frame.

A third domain translator 172 may be coupled to the region buffer 168.The third domain translator 172 performs an FD to SD transform operationon the high feature strength earlier-stored composite FD image block 272to obtain the SD version 276 of the high feature strength earlier-storedcomposite FD image block 272. The FD to SD transform operation maycomprise an inverse discrete cosine transform (DCT) operation in someembodiments. Other embodiments may use other FD to SD transform types.

The apparatus 100 may further include search logic 174 coupled to thesearch window buffer 154. The search logic 174 searches the searchwindow 274 for the matching image block 268. The search logic 174 mayrecognize that the matching image block 268 has been found if a strengthof a match between the SD version 276 of the high feature strengthearlier-stored composite FD image block 272 and a candidate matchingimage block is greater than a strength of a match between the SD version276 of the image block 272 and any other block found in the searchwindow 274.

The apparatus 100 may also include motion matching logic 176 operativelycoupled to the strip buffer 106. The motion matching logic 176calculates the vector 270 between a position in a frame of the SDversion 276 of the image block 272 and a position in the frame of thematching image block 268. The motion matching logic 176 also stores thevector 270 in the vector table 148 if the strength of the match betweenthe SD version 276 of the image block 272 and the matching image block268 is above a selected match threshold.

In another embodiment, a system 180 may include one or more of theapparatus 100, including a strip buffer 106, combinational logic 124,and an image comparator 126, as previously described. The system 180 mayalso include an ISA 104 coupled to the strip buffer to capture an imageand a lens 184 to focus the image on the ISA 104. The system 180 mayfurther include a processor 188 operationally coupled to the stripbuffer 106 to perform image processing functions. Some embodiments ofthe system 180 may be incorporated into a digital camera. A digitalcamera comprising the system 180 may in turn be incorporated intoconsumer electronic devices such as cell phones, as previouslymentioned.

Some embodiments of the system 180 may be used in vehicularapplications. A collision avoidance module 190 may be operationallycoupled to the image comparator 126. The collision avoidance module 190may be configured to trigger a collision avoidance alert if a selectedset of low-frequency coefficients of the new FD image block 224 do notmatch a corresponding set of low-frequency coefficients of thecorresponding earlier-stored composite FD image block 228 within asecond match threshold.

The system 180 may also include a navigation module 192 coupled to thecombinational logic 124. The navigation module 192 may be configured toupdate a stored-image database with a new composite FD image block 236created by the combinational logic 124. In some embodiments, thenavigational module 192 may update a stored map of surrounding sceneryas a vehicle repeatedly traverses a particular route over time.

Any of the components previously described may be implemented in anumber of ways, including embodiments in software. Software embodimentsmay be used in a simulation system, and the output of such a system maydrive the various apparatus described herein.

Thus, the apparatus 100; the ISA 104; the strip buffer 106; the imagedata streams 202, 204; the domain translators 114, 122, 172; the imageblocks 206, 210, 214, 218, 220, 224, 228, 236, 240, 405, 409, 268, 272,276; the entropy encoders 116, 130; the image buffer 101; thecombinational logic 124; the image comparator 126; the noise filter 127;the averaging logic 128; the entropy decoders 134, 160; the coordinateinterpolator 138; the coordinates 250, 254; the pixels 306, 308; thetranspositional logic 142; the affine matrix calculator 146; the affinematrix 258; the vectors 310, 320, 330, 270; the vector table 148; thepixel indexer 150; the image feature 512; the search window buffer 154;the search window 274; the area 520; the image 530; the low-frequencycoefficients 278; the image feature strength logic 164; the regionbuffer 168; the search logic 174; the motion matching logic 176; thesystem 180; the lens 184; the processor 188; the collision avoidancemodule 190; and the navigation module 192 may all be characterized as“modules” herein.

The modules may include hardware circuitry, optical components, singleor multi-processor circuits, memory circuits, software program modulesand objects, firmware, and combinations thereof, as desired by thearchitect of the apparatus 100 and the system 180 and as appropriate forparticular implementations of various embodiments.

The apparatus and systems of various embodiments may be useful inapplications other than performing a compositing operation in thefrequency domain on a sequence of image frames captured in succession todecrease noise while maintaining the effective light sensitivity of theimage capture device. Thus, various embodiments of the invention are notto be so limited. The illustrations of the apparatus 100 and the system180 are intended to provide a general understanding of the structure ofvarious embodiments. They are not intended to serve as a completedescription of all the elements and features of apparatus and systemsthat might make use of the structures described herein.

The novel apparatus and systems of various embodiments may comprise orbe incorporated into electronic circuitry used in computers,communication and signal processing circuitry, single-processor ormulti-processor modules, single or multiple embedded processors,multi-core processors, data switches, and application-specific modulesincluding multilayer, multi-chip modules. Such apparatus and systems mayfurther be included as sub-components within a variety of electronicsystems, such as televisions, cellular telephones, personal computers(e.g., laptop computers, desktop computers, handheld computers, tabletcomputers, etc.), workstations, radios, video players, audio players(e.g., MP3 (Motion Picture Experts Group, Audio Layer 3) players),vehicles, medical devices (e.g., heart monitor, blood pressure monitor,etc.), set top boxes, and others. Some embodiments may include a numberof methods.

FIGS. 6A, 6B, 6C, and 6D are flow diagrams illustrating several methodsaccording to various embodiments. A method 600 combines FD coefficientsfrom image blocks associated with a successive sequence of images tocreate a composite version of the images in the frequency domain. Someembodiments may operate on a block-by-block basis to combine a new FDimage block associated with a later-received image with anearlier-stored composite FD image block to yield a new composite FDimage block. The earlier-stored composite FD image block is associatedwith one or more previously-received image frames. The net effect is toreduce noise in the final composite image.

The method 600 may include storing sequential portions (e.g., one ormore pixel rows) of an image data stream in a strip buffer as theportions are received from an ISA. One or more image blocks may beselected from the strip buffer and operated on according to variousbranches of the method 600. One branch may select image blocksassociated with a first-received image from the strip buffer to populatea compressed image buffer with the first-received image. Another branchmay convert image blocks associated with a successive image from thestrip buffer and combine the converted blocks with composite blocks in acompressed image buffer. A third branch may select a “search window” ofimage blocks associated with a successive image from the strip buffer touse in motion-matching operations.

The method 600 may commence at activity 601 with setting an initialexposure time. Some embodiments may receive a pre-sequence image frameat the strip buffer prior to receiving the first-received image frame.The method 600 may thus continue at activity 602 with receiving thepre-sequence frame and determining a quantization table resulting in abest fit of the image frame compatible with the compressed image buffersize. The pre-sequence image frame may be quantized and entropy-encodedusing alternative quantization tables to find a compatible fit.Subsequent images in the sequence of images may then be expeditiouslyencoded using the quantization table determined using the pre-sequenceimage frame, as previously described.

The method 600 may include pre-populating a region buffer with highfeature-strength blocks from the pre-sequence image frame, at activity603. The pre-sequence image frame may be analyzed for image featurestrength; and highest-strength blocks may be stored in the regionbuffer. Thus populated, the region buffer is ready to be used inmotion-matching operations associated with the first-received imageframe.

The method 600 may also include storing sequential portions of afirst-received image data stream in the strip buffer, at activity 604.The method 600 may continue at activity 606 with converting anearlier-received image block associated with the first-received imagefrom the spatial domain to the frequency domain to yield anearlier-received FD image block. The method 600 may include entropyencoding the earlier-received FD image block to yield an entropy-encodedearlier-received FD image block, at activity 608.

The entropy-encoded earlier-received FD image block is stored in acompressed image buffer as an entropy-encoded earlier-stored compositeFD image block, at activity 610. The entropy-encoded earlier-storedcomposite FD image block may comprise a JPEG image block or otherfrequency or phase domain formatted block. This process may continueuntil the first-received image is stored in the compressed image buffer,at activity 611.

Having populated the compressed image buffer with the first-receivedimage, blocks from successive images may be combined into the compressedimage buffer to form the composite image. However, because of relativecamera-to-scene motion between the time of capturing a previous imageand a next image, pixels from the next image corresponding to an imageelement may be, and generally will be, located at different coordinatesin the strip buffer than coordinates of pixels corresponding to the sameimage element as stored in the compressed image buffer. Consequently,the method 600 may select pixels from the strip buffer for compositioninto a new image block in a different order than received into the stripbuffer, as described here below.

The method 600 may continue at activity 612 with storing sequentialportions of a newly-received image data stream in the strip buffer. Themethod 600 may also include performing an entropy decoding operation onan entropy-encoded earlier-stored composite FD image block, at activity616. An earlier-stored composite FD image block may be obtained as aresult. The entropy decoding operation may comprise a Huffman decodingoperation or an arithmetic decoding operation, among others.

The method 600 may further include reading a set of block positionalcoordinates associated with the earlier-stored composite FD image block,at activity 618. A set of coordinates associated with one or more pixelswithin the earlier-stored composite FD image block may be obtained usingthe set of block positional coordinates, at activity 620. The set ofpixel coordinates may be calculated as offsets from the set of blockpositional coordinates.

An affine matrix may be calculated using the method 600, at activity624. The affine matrix is defined such that a set of coordinates of aset of starting points associated with one or more vectors multiplied bythe affine matrix results in a set of ending points associated with thevectors. As implemented in some embodiments, each vector represents apath between a position in a frame of a previously-received image blockand a corresponding position in the frame of a newly-received imageblock. Given the vectors, the affine matrix may be calculated using aGaussian elimination operation according to techniques known to thoseskilled in the art. Derivation of the vectors used as inputs to theaffine matrix calculator is described in detail further below.

The method 600 may include performing a spatial transposition operationon the set of pixel coordinates using the affine matrix, at activity628. The spatial transposition may yield a set of coordinates associatedwith a set of pixels from the image data stream that are in approximatespatial alignment with pixels associated with a spatial domain versionof the earlier-stored composite FD image block. The spatialtransposition operation may include multiplying the set of coordinatesassociated with pixels from the earlier-stored composite FD image blockby the affine matrix.

The newly-received image may contain pixels that were spatiallytransposed by relative camera-to-scene movement from positions that theyoccupied in previously-captured frames, as previously described. Themovement may occur between the time of capturing the previous frames andcapturing the newly-received frame. The affine spatial transformationeffectively operates to bring the newly-received pixels into alignmentwith corresponding pixels from the earlier-stored composite FD imageblock. This is accomplished by spatially transposing pixel coordinatesfrom the earlier-stored composite FD image block using the affine matrixto yield a set of “index” coordinates. The index coordinates are used toindex spatially corresponding pixels from the newly-received image datastream to form the new image block, at activity 632.

The method 600 may also include converting the new image block from aspatial domain to a frequency domain using an SD to FD transformoperation, at activity 634. Some embodiments may use a DCT operation toperform the SD to FD transform operation. Other SD to FD transforms,including Fourier transforms, are contemplated within the scope of thecurrent disclosure.

The method 600 may also include comparing a selected set oflow-frequency coefficients of the new FD image block to a correspondingset of low-frequency coefficients of the earlier-stored composite FDimage block, at activity 636. Low-frequency coefficients of an FD imageblock may represent significant image features, as previously mentioned.The method 600 may determine whether the selected set of low-frequencycoefficients of the new FD image block matches the corresponding set oflow-frequency coefficients of the earlier-stored composite FD imageblock within a match threshold, at activity 638.

If so, the method 600 may further include calculating a weighted averageof FD coefficients from the new FD image block and FD coefficients fromthe earlier-stored composite FD image block, at activity 639. Variousweighting schemes may be used. For example, the weight associated withan FD coefficient L_(NEW) of the new FD image block may comprise a valueof one. The weight associated with a corresponding FD coefficientL_(OLD) of the earlier-stored composite FD image block may comprise anumber NF equal to a number of image frames composited into theearlier-stored composite FD image block. The weighted average of theresulting FD coefficient can be calculated as:(L_(NEW)+NF*L_(OLD))/(NF+1).

The new FD image block may be combined with the earlier-stored compositeFD image block using the weighted average, at activity 640.

If the low-frequency coefficients of the new FD image block do not matchthe low-frequency coefficients of the earlier-stored composite FD imageblock within the match threshold, the method 600 may include discardingthe new FD image block, at activity 642. Thus, some embodiments mayimpose the condition of requiring a minimum match of significant imagefeatures between the new and earlier-stored composite FD image blocks.If the condition is not met, the method 600 may include using theearlier-stored composite FD image block as the new composite FD imageblock.

In the latter case, if the new FD image block is not composited with theearlier-stored composite FD image block, the new composite FD imageblock may include more noise than expected. This effect may be mitigatedby noise filtering the earlier-stored composite FD image block toattenuate one or more high frequency coefficients, at activity 644. Thenoise filtering operation may reduce pixel noise that might haveotherwise been averaged out by the new FD image block, had the new FDimage block been composited rather than being discarded.

Assuming that the low-frequency coefficients of the new FD image blockmatch the low-frequency coefficients of the earlier-stored composite FDimage block within the match threshold, the new FD image block and theearlier-stored composite FD image block are combined into the newcomposite FD image block, as previously described. The method 600 mayalso include entropy-encoding the new composite FD image block to yieldan entropy-encoded new composite FD image block, at activity 646.

The new composite FD image block may be stored in the composite imagebuffer if buffer space is sufficient to write the block withoutoverwriting unprocessed image data. A read pointer is used by method 600processes including activity 616 (“earlier processes”). To avoidoverwriting the buffer at the read pointer and beyond if the writeprocess proceeds faster than the read process, the method 600 mayinclude determining whether the position of the read pointer less theposition of the write pointer is greater than the new composite FD imageblock to be written plus space for end-of-block (EOB) information, atactivity 647. If not, the method 600 may include writing the EOBinformation, at activity 648, and continuing at FIG. 6C.

If the write pointer is not outrunning the read pointer, the method 600may store the new composite FD image block in the compressed imagebuffer, at activity 655. The method 600 may loop to activity 616 untilall blocks of the newly-received image have been processed from thestrip buffer and combined into the composite FD image, at activity 656.

In review, the method 600 includes receiving an image data streamassociated with a first of a sequence of images, transforming imageblocks from the image data stream to the frequency domain,entropy-encoding the blocks for further compression, and storing theblocks in a compressed image buffer. Image data streams associated withthe first and subsequent images of the sequence may be, but need not be,received from an ISA. For example, the images may be received from astorage device.

Images received subsequent to the first of the sequence of images may bemerged into the compressed image buffer via a different logical paththan that of the first-received image. Each subsequent image isspatially transformed to bring pixels shifted by relativecamera-to-scene motion into spatial alignment with the previously-storedcomposite image. Blocks from a subsequent image are composed usingpixels indexed from the strip buffer using a set of affine-transformedcoordinates as the indices. Blocks so composed from each subsequentimage are merged with the existing contents of the compressed imagebuffer using the weighted average technique described above. The affinematrix is calculated from a set of vectors representing paths betweenpositions, relative to a common image frame, of corresponding blocksselected from subsequent images. Derivation of the set of vectors isdescribed here below.

Vectors representing pixel transposition from one image to a subsequentimage in the sequence of images are calculated using portions of themethod 600 described here below. A vector originates at a selectedcomposite FD image block and terminates at a corresponding block in thenewly-received image data stream. Selecting high-strength composite FDimage blocks may help to assure positional accuracy in the derivation ofthe vectors and thus in the transposition of subsequently-receivedpixels for merging into the composite FD image.

Finding a high-strength selected composite FD image block in thecompressed image buffer may include loading an entropy-encodedearlier-stored composite FD image block from the buffer, at activity660. An entropy decoding operation may be performed on one or morehigh-order portions of the entropy-encoded earlier-stored composite FDimage block, at activity 662. The entropy decoding operation may reveala set of low-frequency coefficients associated with the earlier-storedcomposite FD image block.

The set of low-frequency coefficients may be used to calculate an imagefeature strength metric value associated with the earlier-storedcomposite FD image block, at activity 664. Low-frequency coefficientsassociated with an FD image block may represent significant imagefeatures, as previously mentioned. The image feature strength metric maycomprise a mathematical operation performed on the set of low-frequencycoefficients, or other operation calculated to measure image featurestrength. For example, the mathematical operation may comprise a sum ofthe absolute values of the set of low-frequency coefficients in someembodiments.

The method 600 may continue at activity 668 with scanning a selectedarea of the compressed image buffer to find a high-strength, or higheststrength earlier-stored composite FD image block. The highest-strengthcomposite FD block is the block from the selected area of the compressedimage buffer with an image feature strength metric value higher thanthat of any other FD image block from the selected area.

The selected composite FD image block may be stored in a region bufferassociated with the selected area, at activity 670. The method 600 mayalso include performing an FD to SD transform operation on the selectedcomposite FD image block to obtain an SD version of the selectedcomposite FD image block, at activity 674.

The method 600 further includes searching within the search window for acandidate matching image block. Some embodiments may conduct the searchby loading a set of highest-quality vectors from a table of vectors, atactivity 676. Measures of vector quality may include the strength of amatch between image blocks used to calculate the vector, an inverse of ameasure of ambiguity, or both. The measure of ambiguity increases as amatch strength associated with a next best candidate matching imageblock increases. That is, a vector associated with a block that isdifficult to distinguish from another block may be considered to be ofrelatively lower quality than a vector associated with a less ambiguousblock. The method 600 may initiate the search within the search windowat an image block closest to a location corresponding to a median valueof a set of destination coordinates associated with the set ofhighest-quality vectors, at activity 678.

The method 600 may also include measuring the strength of a matchbetween the SD version of the selected composite FD image block and thecandidate matching image block, at activity 682. The candidate matchingimage block may be selected as the matching image block if the candidateis the best match within the search window, at activity 684. That is,the candidate matching block may be selected if the strength of thematch between the SD version of the selected composite FD image blockand the candidate matching image block is greater than the strength of amatch associated with any other candidate matching image block found inthe search window. Various measures of match strength may be used,including an inverse of a sum of absolute differences operation or aninverse of a sum of squares of an absolute difference operation, amongothers.

The method 600 may further include calculating the vector between aposition in a frame of an SD version of the selected composite FD imageblock and a position in the frame of a matching image block found in thesearch window. A set of coordinates associated with a pixel in theselected composite FD image block may be established as originationcoordinates of the vector, at activity 688. A set of coordinatesassociated with a pixel in the matching image block in spatialcorrespondence with the pixel in the selected composite FD image blockmay be established as destination coordinates of the vector, at activity690. The method 600 may include calculating the vector between the setsof coordinates, at activity 692.

The method 600 may include determining whether the strength of a matchbetween the SD version of the selected composite FD image block and thematching image block is above a selected match threshold, at activity694. If so, the vector may be stored in the vector table, at activity696. If not, the vector may be discarded, at activity 698. The method600 may search for additional vectors by branching back to activity 660to scan another area of the compressed image buffer for anotherhigh-strength composite FD image block, at activity 699.

Vectors from the vector table may be used to calculate an affine matrixthat is representative of relative camera-to-scene motion, as previouslydescribed. The affine matrix may be used to transpose coordinates ofcomposite image pixels to generate coordinates of corresponding pixelsin the strip buffer. The corresponding pixels indexed from the stripbuffer are combined into the composite image to add luminance to thefinal composite image and to average out noise.

It is noted that the activities described herein may be executed in anorder other than the order described. The various activities describedwith respect to the methods identified herein may also be executed inrepetitive, serial, and/or parallel fashion.

A software program may be launched from a computer-readable medium in acomputer-based system to execute functions defined in the softwareprogram. Various programming languages may be employed to createsoftware programs designed to implement and perform the methodsdisclosed herein. The programs may be structured in an object-orientedformat using an object-oriented language such as Java or C++.Alternatively, the programs may be structured in a procedure-orientedformat using a procedural language, such as assembly or C. The softwarecomponents may communicate using well-known mechanisms, includingapplication program interfaces, inter-process communication techniques,and remote procedure calls, among others. The teachings of variousembodiments are not limited to any particular programming language orenvironment.

The apparatus, systems, and methods disclosed herein may increase theeffective light sensitivity of an image capture device without anappreciable increase in pixel noise levels by performing a compositingoperation in the frequency domain of a sequence of image frames capturedin succession. Each successive image block is transposed in the spatialdomain according to relative movement between the image capture deviceand the scene being captured to provide for image alignmentnotwithstanding the movement. Image capture devices with higher pixeldensities and larger aperture ratings may result.

The accompanying figures that form a part hereof show, by way ofillustration and not of limitation, specific embodiments in which thesubject matter may be practiced. The embodiments illustrated aredescribed in sufficient detail to enable those skilled in the art topractice the teachings disclosed herein. Other embodiments may be usedand derived therefrom, such that structural and logical substitutionsand changes may be made without departing from the scope of thisdisclosure. This Detailed Description, therefore, is not to be taken ina limiting sense, and the scope of various embodiments is defined onlyby the appended claims and the full range of equivalents to which suchclaims are entitled.

Such embodiments of the inventive subject matter may be referred toherein individually or collectively by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any single invention or inventive concept, if more thanone is in fact disclosed. Thus, although specific embodiments have beenillustrated and described herein, any arrangement calculated to achievethe same purpose may be substituted for the specific embodiments shown.This disclosure is intended to cover any and all adaptations orvariations of various embodiments. Combinations of the above embodimentsand other embodiments not specifically described herein will be apparentto those of skill in the art upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b) requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In the foregoing Detailed Description,various features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted to require more features than are expressly recited ineach claim. Rather, inventive subject matter may be found in less thanall features of a single disclosed embodiment. Thus the following claimsare hereby incorporated into the Detailed Description, with each claimstanding on its own as a separate embodiment.

1. An apparatus, comprising: a strip buffer to temporarily store animage data stream associated with a new version of an image as the imagedata stream is received from an image sensor array (ISA); an imagecomparator to compare a selected set of low-frequency coefficients of anew frequency domain (FD) image block associated with the new version ofthe image to a corresponding set of low-frequency coefficients of anearlier-stored composite FD image block associated with at least onepreviously received version of the image; and combinational logic tocombine the new FD image block with the earlier-stored composite FDimage block to yield a new composite FD image block if the selected setof low-frequency coefficients of the new FD image block match thecorresponding set of low-frequency coefficients of the earlier-storedcomposite FD image block within a match threshold.
 2. The apparatus ofclaim 1, further comprising: a first domain translator coupled to thestrip buffer to convert an earlier-received image block associated witha first-received image from a spatial domain to a frequency domain toyield an earlier-received FD image block.
 3. The apparatus of claim 2,further comprising: a first entropy encoder operatively coupled to thefirst domain translator to entropy-encode the earlier-received FD imageblock to yield an entropy-encoded earlier-received FD image block and tostore the entropy-encoded earlier-received FD image block in acompressed image buffer as an entropy-encoded earlier-stored compositeFD image block.
 4. The apparatus of claim 1, further comprising: asecond domain translator coupled to the strip buffer to convert a blockof pixel illuminance values selected from the image data stream from aspatial domain (SD) to a frequency domain using an SD to FD transformoperation to yield the new FD image block.
 5. The apparatus of claim 1,further comprising: averaging logic coupled to the combinational logicto compute a weighted average of an FD coefficient from the new FD imageblock and a corresponding FD coefficient from the earlier-storedcomposite FD image block, wherein a weight associated with the FDcoefficient from the new FD image block comprises a value of one andwherein a weight associated with the corresponding FD coefficient fromthe earlier-stored composite FD image block comprises a number equal toa number of image frames composited into the earlier-stored composite FDimage block.
 6. The apparatus of claim 1, further comprising: a secondentropy encoder coupled to the combinational logic to entropy-encode thenew composite FD image block to yield an entropy-encoded new compositeFD image block and to store the entropy-encoded new composite FD imageblock in a compressed image buffer.
 7. The apparatus of claim 1, furthercomprising: a first entropy decoder coupled to the image comparator toperform an entropy decoding operation on an entropy-encodedearlier-stored composite FD image block to yield the earlier-storedcomposite FD image block.
 8. The apparatus of claim 1, furthercomprising: transpositional logic operatively coupled to the stripbuffer to perform a spatial transposition operation on a set ofcoordinates associated with a pixel within the earlier-stored compositeFD image block to find a set of transposed coordinates associated with acorresponding pixel from the new version of the image.
 9. The apparatusof claim 8, further comprising: an intra-block coordinate interpolatorcoupled to the transpositional logic to read a set of block positionalcoordinates associated with the earlier-stored composite FD image blockand to determine the set of coordinates associated with the pixel withinthe earlier-stored composite FD image block, wherein each coordinate ofthe set of coordinates is calculated as an offset from a correspondingblock positional coordinate.
 10. The apparatus of claim 8, furthercomprising: an affine matrix calculator coupled to the transpositionallogic to generate an affine matrix such that a set of coordinates of aset of starting points associated with at least one vector multiplied bythe affine matrix results in a set of ending points associated with theat least one vector, wherein the at least one vector represents a pathbetween a position in a frame of a previously-received image blockassociated with the at least one previously received version of theimage and a position in the frame of a correspondingsubsequently-received image block associated with the new version of theimage.
 11. The apparatus of claim 1, further comprising: motion matchinglogic operatively coupled to the strip buffer to calculate a vectorbetween a position in a frame of a spatial domain (SD) version of theearlier-stored composite FD image block and a position in the frame of amatching image block found in a search window associated with the newversion of the image and to store the vector in a vector table if astrength of a match between the SD version of the earlier-storedcomposite FD image block and the matching image block is above aselected match threshold.
 12. The apparatus of claim 11, furthercomprising: a search window buffer coupled to the strip buffer to storea set of pixels associated with the search window.
 13. The apparatus ofclaim 11, further comprising: image feature strength logic operativelycoupled to the motion matching logic to scan a selected area of acompressed image buffer to find a highest strength earlier-storedcomposite FD image block with an image feature strength metric valuehigher than any other FD image block from the selected area bycalculating an image feature strength metric value associated with theearlier-stored composite FD image block using a set of low-frequencycoefficients from the earlier-stored composite FD image block; and aregion buffer associated with the selected area to store the higheststrength earlier-stored composite FD image block.
 14. The apparatus ofclaim 13, further comprising: a second entropy decoder coupled to theimage feature strength logic to load an entropy-encoded earlier-storedcomposite FD image block from the compressed image buffer and to performan entropy decoding operation on at least a high-order portion of theentropy-encoded earlier-stored composite FD image block to reveal theset of low-frequency coefficients of the earlier-stored composite FDimage block.
 15. A method, comprising: comparing a selected set oflow-frequency coefficients of a new frequency domain (FD) image blockfrom an image data stream associated with a new version of an image to acorresponding set of low-frequency coefficients of an earlier-storedcomposite FD image block associated with at least one previouslyreceived version of the image; and combining the new FD image block withthe earlier-stored composite FD image block to yield a new composite FDimage block if the set of low-frequency coefficients of the new FD imageblock match the set of low-frequency coefficients of the earlier-storedcomposite FD image block within a match threshold.
 16. The method ofclaim 15, further comprising: receiving sequential portions of an imagedata stream from an image sensor array (ISA); and storing the sequentialportions of the image data stream in a strip buffer as the portions arereceived from the ISA.
 17. The method of claim 15, wherein theentropy-encoded earlier-stored composite FD image block comprises ajoint photographic experts group (JPEG) image block.
 18. The method ofclaim 15, further comprising: calculating a weighted average of an FDcoefficient from the new FD image block and a corresponding FDcoefficient from the earlier-stored composite FD image block, wherein aweight associated with the FD coefficient from the new FD image blockcomprises a value of one and wherein a weight associated with thecorresponding FD coefficient from the earlier-stored composite FD imageblock comprises a number equal to a number of image frames compositedinto the earlier-stored composite FD image block; and using the weightedaverage to combine the new FD image block with the earlier-storedcomposite FD image block.
 19. The method of claim 15, wherein theearlier-stored composite FD image block is associated with at least onepreviously-captured frame of an image and wherein the new FD image blockis associated with a next-captured frame of the image.
 20. The method ofclaim 15, further comprising: performing an entropy decoding operationon an entropy-encoded earlier-stored composite FD image block to yieldthe earlier-stored composite FD image block.
 21. The method of claim 15,further comprising: reading a set of block positional coordinatesassociated with the earlier-stored composite FD image block; anddetermining a set of pixel coordinates associated with at least onepixel within the earlier-stored composite FD image block, the set ofpixel coordinates calculated as offsets from the set of block positionalcoordinates.
 22. The method of claim 21, further comprising: performinga spatial transposition operation on the set of coordinates associatedwith the at least one pixel from the earlier-stored composite FD imageblock to find a set of coordinates associated with a set of pixels fromthe image data stream such that the set of pixels from the image datastream are in approximate spatial alignment with pixels associated witha spatial domain version of the earlier-stored composite FD image block;and selecting the set of pixels from the image data stream to form a newimage block.
 23. The method of claim 15, further comprising: calculatingan affine matrix such that a set of coordinates of a set of startingpoints associated with at least one vector multiplied by the affinematrix results in a set of ending points associated with the at leastone vector, wherein the at least one vector represents a path between aposition in a frame of a previously-received image block and acorresponding position in the frame of a subsequently-received imageblock.
 24. The method of claim 15, further comprising: entropy-encodingthe new composite FD image block to yield an entropy-encoded newcomposite FD image block; and storing the entropy-encoded new compositeFD image block in a compressed image buffer.
 25. The method of claim 15,further comprising: discarding the new FD image block if the set oflow-frequency coefficients of the new FD image block do not match theset of low-frequency coefficients of the earlier-stored composite FDimage block within the match threshold, leaving the earlier-storedcomposite FD image block as the new composite FD image block.
 26. Themethod of claim 15, further comprising: loading an entropy-encodedearlier-stored composite FD image block from a compressed image buffer;performing an entropy decoding operation on at least a high-orderportion of the entropy-encoded earlier-stored composite FD image blockto reveal a set of low-frequency coefficients of the earlier-storedcomposite FD image block; and calculating an image feature strengthmetric value associated with the earlier-stored composite FD image blockusing the set of low-frequency coefficients.
 27. The method of claim 15,further comprising: calculating a vector between a position in a frameof a spatial domain (SD) version of the selected composite FD imageblock and a position in the frame of a matching image block found in asearch window of an image represented by the image data stream; andstoring the vector in a vector table if a strength of a match betweenthe SD version of the selected composite FD image block and the matchingimage block is above a selected match threshold.
 28. The method of claim27, further comprising: performing an FD to SD transform operation onthe selected composite FD image block to obtain the SD version of theselected composite FD image block; conducting a search of the searchwindow for a candidate matching image block; measuring a strength of amatch between the SD version of the selected composite FD image blockand the candidate matching image block; and selecting the candidatematching image block as the matching image block if the strength of thematch between the SD version of the selected composite FD image blockand the candidate matching image block is greater than a strength of amatch associated with any other candidate matching image block found inthe search window.
 29. The method of claim 28, further comprising:utilizing at least one of an inverse of a sum of absolute differencesoperation or an inverse of a sum of squares of an absolute differenceoperation to measure a match strength characteristic.
 30. The method ofclaim 28, further comprising: establishing a set of originationcoordinates of the vector as a set of coordinates associated with apixel in the SD version of the selected composite FD image block; andestablishing a set of destination coordinates of the vector as a set ofcoordinates associated with a pixel in the matching image block, whereinthe pixel in the matching image block is in spatial correspondence withthe pixel in the selected composite FD image block.
 31. The method ofclaim 28, further comprising: loading a set of high-quality vectors froma table of vectors; and initiating the search within the search windowat an image block closest to a location corresponding to a median valueof a set of destination coordinates associated with the set ofhigh-quality vectors.